package ${packagePrefix}.domain.gateway;

import ${packagePrefix}.domain.model.${tableName?lower_case}.${domainObjectName};
import ${packagePrefix}.client.dto.query.${domainObjectName}ListQry;

import java.util.List;
import java.util.Optional;

/**
 * ${entityComment}仓储接口
 */
public interface ${domainObjectName}Repository {

    /**
     * 根据ID查询${entityComment}
     *
     * @param id ${entityComment}ID
     * @return ${entityComment}实体
     */
    Optional<${domainObjectName}> findById(Long id);

    /**
     * 保存${entityComment}
     *
     * @param ${domainObjectName?uncap_first} ${entityComment}实体
     * @return 保存后的ID
     */
    Long save(${domainObjectName} ${domainObjectName?uncap_first});

    /**
     * 根据条件查询${entityComment}列表
     *
     * @param qry 查询条件
     * @return ${entityComment}列表
     */
    List<${domainObjectName}> findByCondition(${domainObjectName}ListQry qry);

    /**
     * 删除${entityComment}
     *
     * @param id ${entityComment}ID
     */
    void deleteById(Long id);
} 